using System.Collections.Generic;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 字段定义数据传输对象
    /// 用于传输内容模型字段的配置和约束信息
    /// </summary>
    public class FieldDto
    {
        /// <summary>
        /// 字段标识符
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 字段名称
        /// 字段的唯一名称标识
        /// </summary>
        public string Name { get; set; } = string.Empty;
        
        /// <summary>
        /// 字段类型
        /// 如：文本、数字、日期、布尔值等数据类型
        /// </summary>
        public string Type { get; set; } = string.Empty;
        
        /// <summary>
        /// 字段标签
        /// 用户友好的字段显示名称
        /// </summary>
        public string? Label { get; set; }
        
        /// <summary>
        /// 是否必填
        /// 标识该字段是否为必填项
        /// </summary>
        public bool IsRequired { get; set; }
        
        /// <summary>
        /// 默认值
        /// 字段的默认值，可以是任意类型
        /// </summary>
        public string? DefaultValue { get; set; }
        
        /// <summary>
        /// 字段选项
        /// JSON格式的字段配置选项
        /// </summary>
        public string? Options { get; set; }
        
        /// <summary>
        /// 验证规则
        /// JSON格式的字段验证规则
        /// </summary>
        public string? ValidationRules { get; set; }
    }
}
